package com.example.pclimb.dao;

import androidx.lifecycle.LiveData;
import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;

import com.example.pclimb.model.GuideImage;

import java.util.List;

/**
 * 向导证书图片数据访问接口
 */
@Dao
public interface GuideImageDao {

    /**
     * 插入图片记录
     */
    @Insert
    long insert(GuideImage guideImage);

    /**
     * 删除图片记录
     */
    @Delete
    void delete(GuideImage guideImage);

    /**
     * 根据ID获取图片
     */
    @Query("SELECT * FROM guide_images WHERE id = :id")
    LiveData<GuideImage> getImageById(int id);

    /**
     * 获取用户的所有证书图片
     */
    @Query("SELECT * FROM guide_images WHERE userId = :userId ORDER BY uploadTime DESC")
    LiveData<List<GuideImage>> getUserImages(int userId);

    /**
     * 获取用户的所有证书图片 - 非观察模式
     */
    @Query("SELECT * FROM guide_images WHERE userId = :userId ORDER BY uploadTime DESC")
    List<GuideImage> getUserImagesSync(int userId);

    /**
     * 删除用户的所有证书图片
     */
    @Query("DELETE FROM guide_images WHERE userId = :userId")
    void deleteUserImages(int userId);

    /**
     * 获取用户的证书图片数量
     */
    @Query("SELECT COUNT(*) FROM guide_images WHERE userId = :userId")
    int getUserImageCount(int userId);
} 